import React, { useState, useEffect, useRef } from 'react'; import { Search, MapPin, Package, CheckCircle2, Truck, Bell, ChevronRight, Navigation, Info } from 'lucide-react'; // --- MOCK DATA GENERATOR --- // Simulates carrier APIs (UPS, FedEx, USPS) const generateMockPackageData = (trackingNumber) => { let carrier = 'Unknown Carrier'; if (trackingNumber.startsWith('1Z')) carrier = 'UPS'; else if (trackingNumber.startsWith('9')) carrier = 'USPS'; else if (trackingNumber.length === 12 || trackingNumber.startsWith('T')) carrier = 'FedEx'; else carrier = 'Logistics Partner'; // For demonstration, we'll place the final destination near Lone Tree, CO return { trackingNumber: trackingNumber.toUpperCase(), carrier, status: 'Out for Delivery', estimatedDelivery: 'Today, by 8:00 PM', currentLocation: { lat: 39.5323, lng: -104.8824, name: 'Lone Tree, CO' }, timeline: [ { id: 1, status: 'Out for Delivery', description: 'Package is on a vehicle out for delivery.', location: 'Lone Tree, CO', date: 'Today', time: '08:15 AM', completed: false, isCurrent: true }, { id: 2, status: 'Arrived at Local Facility', description: 'Package arrived at the local distribution center.', location: 'Denver, CO', date: 'Yesterday', time: '11:42 PM', completed: true, isCurrent: false }, { id: 3, status: 'In Transit', description: 'Package departed facility.', location: 'Chicago, IL', date: 'Aug 27', time: '04:30 PM', completed: true, isCurrent: false }, { id: 4, status: 'Label Created', description: 'Shipping label created, USPS awaiting item.', location: 'New York, NY', date: 'Aug 26', time: '09:00 AM', completed: true, isCurrent: false } ] }; }; export default function App() { const [trackingNumber, setTrackingNumber] = useState(''); const [packageData, setPackageData] = useState(null); const [isLoading, setIsLoading] = useState(false); const [notificationsEnabled, setNotificationsEnabled] = useState(false); const [deliveryTimer, setDeliveryTimer] = useState(null); // Check notification permission on load useEffect(() => { if ('Notification' in window && Notification.permission === 'granted') { setNotificationsEnabled(true); } }, []); const requestNotifications = async () => { if (!('Notification' in window)) { alert('This browser does not support desktop notification'); return; } const permission = await Notification.requestPermission(); if (permission === 'granted') { setNotificationsEnabled(true); } }; const triggerPushNotification = (trackingNum) => { if ('Notification' in window && Notification.permission === 'granted') { new Notification('Package Delivered! 📦', { body: `Your package (${trackingNum}) has been successfully delivered.`, icon: 'https://cdn-icons-png.flaticon.com/512/751/751381.png' }); } }; const handleSearch = (e) => { e.preventDefault(); if (!trackingNumber.trim()) return; setIsLoading(true); setPackageData(null); // Clear any existing demo timers if (deliveryTimer) clearTimeout(deliveryTimer); // Simulate API network request setTimeout(() => { const data = generateMockPackageData(trackingNumber); setPackageData(data); setIsLoading(false); // --- DEMO FEATURE: Simulate delivery after 5 seconds to trigger Push Notification --- const timer = setTimeout(() => { setPackageData(prev => { if (!prev) return prev; const updated = { ...prev, status: 'Delivered', estimatedDelivery: 'Delivered Today' }; updated.timeline[0].status = 'Delivered'; updated.timeline[0].description = 'Package was left at the front door.'; updated.timeline[0].completed = true; triggerPushNotification(updated.trackingNumber); return updated; }); }, 5000); setDeliveryTimer(timer); }, 1200); }; // Apple-style UI elements return (
{/* Glassmorphic Header */}
TrackR
{/* Hero Search Section */}

Where is your package?

Enter your UPS, FedEx, or USPS tracking number to get real-time updates.

setTrackingNumber(e.target.value)} placeholder="Tracking Number (e.g., 1Z999999999)" className="w-full pl-12 pr-32 py-4 rounded-2xl bg-white border-0 shadow-[0_8px_30px_rgb(0,0,0,0.04)] focus:ring-2 focus:ring-blue-500 focus:outline-none text-lg transition-shadow" />
{/* Quick Demo Hint */}

Try tracking 1Z12345 for a live demo.

{/* Results Area */} {packageData && (
{/* High-level Status Card */}
{packageData.carrier} {packageData.trackingNumber}

{packageData.status === 'Delivered' ? ( ) : ( )} {packageData.status}

{packageData.status === 'Delivered' ? 'Delivered on' : 'Estimated delivery:'} {packageData.estimatedDelivery}

{/* Right Side: Progress Bar & Alerts */}
{/* Delivery Progress Bar */}
Shipped In Transit Delivered
{/* Enable Alerts Button */}
{/* Left Column: Map */}

Current Location

{/* Google Maps Embed - Keyless */} {/* Floating Location Pill */}
{packageData.currentLocation.name}
{/* Right Column: Timeline */}

Tracking History

{packageData.timeline.map((event, index) => { const isLast = index === packageData.timeline.length - 1; const isActive = event.isCurrent || event.status === 'Delivered'; return (
{/* Timeline Dot */}

{event.status}

{event.date}

{event.time}

{event.description}

{event.location}
) })}
)}
{/* Tailwind specific custom styles for scrollbar mimicking Apple's hidden/sleek scrollbars */}